package net.apexcns.core.config;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * <pre>
 * Class : net.apexcns.core.config.ConfigEnv / ConfigEnv.java
 * 	Define Class Object : 프로그램 기본 환경 설정 정보를 담는 객체  
 * 	현재는 리눅스 용으로만 정의되어 있음.
 * <br>
 * </pre>
 * @author ytjeong / apexcns,Inc.
 * @version 1.0
 * @see javadoc
 * @since 2012. 9. 14.
 */
@SuppressWarnings("serial")
@XStreamAlias("configEnv")
public class ConfigEnv extends ConfigSupport {
	private int pageSize	= 10;	// WEB 환경의 경우 한 Page 화면 출력을 위한 Max Record 수
	private String fileUploadRootDir	= System.getProperty("user.dir");
	private String rrdPath	= System.getProperty("user.dir");	// 모니터링 값을 별도의 RRD 파일로 저장시 이용항 Path
	
	// 기본 프로그램 DB Connection 정보
	private String dbDriver;
	private String dbUrl;
	private String dbUsername;
	private String dbPassword;

	// 상태 모니터링을 위한 접근 정보
	private int monPort	= 50590;
	private String monUsername	= "apex";
	private String monPassword	= "changeme";

	// Default 설치 위치 정보
	private String installHomeLinux	= "/tools/ss-fire-collector";
	private String installHomeWindows	= "C:\\tool\\ss-fire-collector";
	
	
	public String getConfigPath() {
		String configFile = System.getProperty("apex.configEnv.file");
		if(configFile!=null) return configFile;
		return getConfigBase() + "/config-env.xml";
	}

	public int getPageSize() {
		return pageSize;
	}

	public String getFileUploadRootDir() {
		return fileUploadRootDir;
	}

	public String getRrdPath() {
		return rrdPath;
	}

	public String getDbDriver() {
		return dbDriver;
	}

	public String getDbUrl() {
		return dbUrl;
	}

	public String getDbUsername() {
		return dbUsername;
	}

	public String getDbPassword() {
		return dbPassword;
	}

	public String getMonUsername() {
		return monUsername;
	}

	public String getMonPassword() {
		return monPassword;
	}

	public int getMonPort() {
		return monPort;
	}

	public String getInstallHomeLinux() {
		return installHomeLinux;
	}

	public String getInstallHomeWindows() {
		return installHomeWindows;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString() 
	 * 
	 * Method : net.apexcns.core.config.ConfigEnv.toString()
	 */
	@Override
	public String toString() {
	    StringBuilder builder = new StringBuilder();
	    builder.append("ConfigEnv [pageSize=");
	    builder.append(pageSize);
	    builder.append("\n, fileUploadRootDir=");
	    builder.append(fileUploadRootDir);
	    builder.append("\n, rrdPath=");
	    builder.append(rrdPath);
	    builder.append("\n, dbDriver=");
	    builder.append(dbDriver);
	    builder.append(", dbUrl=");
	    builder.append(dbUrl);
	    builder.append(", dbUsername=");
	    builder.append(dbUsername);
	    builder.append(", dbPassword=");
	    builder.append(dbPassword);
	    builder.append("\n, monPort=");
	    builder.append(monPort);
	    builder.append(", monUsername=");
	    builder.append(monUsername);
	    builder.append(", monPassword=");
	    builder.append(monPassword);
	    builder.append("\n, installHomeLinux=");
	    builder.append(installHomeLinux);
	    builder.append("\n, installHomeWindows=");
	    builder.append(installHomeWindows);
	    builder.append("]");
	    return builder.toString();
	}

}
